com.rscja.team.qcom.deviceapi

## Class CardWithBYL_qcom

- java.lang.Object
- - com.rscja.team.qcom.deviceapi.Device_qcom
  - - com.rscja.team.qcom.deviceapi.CardWithBYL_qcom

- All Implemented Interfaces:
    ICardWithBYL

      public class CardWithBYL_qcom
      extends Device_qcom
      implements ICardWithBYL

  白玉兰公交卡操作类

  注意：
  1、使用前请确认您的机器已安装相关模块。
  2、要正常使用模块需要在\libs\armeabi\目录放置libDeviceAPI.so文件。
  3、在操作设备前需要调用 `init()` 打开设备，使用完后调用 `free()` 关闭设备

  Author:
    liuruifeng

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `RFIDWithISO14443A` | `mRFID`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.String` | `byte2HexString(byte b)`
    `static java.lang.String` | `bytesToHexString(byte[] b, int size)`
    `java.lang.String` | `cardConsumeConfirm(java.lang.String time, java.lang.String dealnum, java.lang.String cardnum)`
    `void` | `cleanFaultCard()` 清除故障卡
    `java.lang.String[]` | `Consume(float money)` 扣费
    `boolean` | `free()` 释放模块
    `java.lang.String[]` | `getBalance()` 获取余额和有效期
    `static CardWithBYL_qcom` | `getInstance()` 获取RFID低频操作实例
    `java.lang.String` | `getMessage(int code)` 将错误代码转换为语义消息
    `java.lang.String` | `getPsamCardID()` 获取psam卡id
    `boolean` | `init()` 初始化RFID和PSAM模块
    `void` | `setLog(boolean bool)`

    - ### Methods inherited from class com.rscja.team.qcom.deviceapi.Device_qcom

      `isPowerOn`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.rscja.deviceapi.interfaces.ICardWithBYL

      `isPowerOn`

- - ### Field Detail

    - #### mRFID

          public RFIDWithISO14443A mRFID

  - ### Method Detail

    - #### getInstance

          public static CardWithBYL_qcom getInstance()
                                              throws ConfigurationException

      获取RFID低频操作实例
      Returns:
      Throws:
        `ConfigurationException` - 配置错误异常

    - #### init

          public boolean init()

      初始化RFID和PSAM模块
      Specified by:
        `init` in interface `ICardWithBYL`
      Returns:
        true成功，false失败

    - #### free

          public boolean free()

      释放模块
      Specified by:
        `free` in interface `ICardWithBYL`
      Returns:
        true成功，false失败

    - #### getBalance

          public java.lang.String[] getBalance()

      获取余额和有效期
      Specified by:
        `getBalance` in interface `ICardWithBYL`
      Returns:
        失败返回null，索引0为余额，索引1为开始日期，索引2为结束日期

    - #### Consume

          public java.lang.String[] Consume(float money)

      扣费
      Specified by:
        `Consume` in interface `ICardWithBYL`
      Parameters:
        `money` - 金额
      Returns:
        返回数组长度为1表示失败，索引0为失败消息； 数组长度为10表示成功， 索引 0：交易时间 索引 1：pos机号 索引 2：PSAM交易号 索引 3：卡号 索引 4：CPU卡交易号 索引 5：城市代码 索引 6：扣费前余额 索引 7：扣费金额 索引 8：交易类型 索引 9：TAC 10:行业代码 11:卡类型 12:有效时间 13:芯片标志 14:清算交易类型 15:卡版本 16：卡面号

    - #### getPsamCardID

          public java.lang.String getPsamCardID()

      获取psam卡id
      Specified by:
        `getPsamCardID` in interface `ICardWithBYL`
      Returns:
        成功返回psam卡id，失败返回null

    - #### cleanFaultCard

          public void cleanFaultCard()

      清除故障卡
      Specified by:
        `cleanFaultCard` in interface `ICardWithBYL`

    - #### getMessage

          public java.lang.String getMessage(int code)

      将错误代码转换为语义消息
      Specified by:
        `getMessage` in interface `ICardWithBYL`
      Parameters:
        `code` -
      Returns:

    - #### cardConsumeConfirm

          public java.lang.String cardConsumeConfirm(java.lang.String time,
                                                     java.lang.String dealnum,
                                                     java.lang.String cardnum)

      Specified by:
        `cardConsumeConfirm` in interface `ICardWithBYL`
      Parameters:
        `time` - 时间 yyyyMMddHHmmss
        `dealnum` - 两个字节交易号
        `cardnum` - 四个字节卡号
      Returns:
        返回数据：获取数据失败返回(错误码)，获取成功返回TAC的数据

    - #### bytesToHexString

          public static java.lang.String bytesToHexString(byte[] b,
                                                          int size)

    - #### byte2HexString

          public static java.lang.String byte2HexString(byte b)

    - #### setLog

          public void setLog(boolean bool)